package com.odontosis.view.servicoconveniado;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import com.lowagie.text.pdf.AcroFields;
import com.odontosis.entidade.SituacaoPaciente;
import com.odontosis.util.StringUtilsOdontosis;
import com.odontosis.view.OdontosisForm;

public class FormListaServicoConvenio extends OdontosisForm  {
	
	private String nomePaciente;
	
	private String numeroPasta;
	
	private String dataInicial;
	
	private String dataFinal;
	
	private String impressao;

	public String getImpressao() {
		return impressao;
	}

	public void setImpressao(String impressao) {
		this.impressao = impressao;
	}

	public String getDataInicial() {
		return dataInicial;
	}

	public String getDataFinal() {
		return dataFinal;
	}

	public void setDataInicial(String dataInicial) {
		this.dataInicial = dataInicial;
	}

	public void setDataFinal(String dataFinal) {
		this.dataFinal = dataFinal;
	}

	public String getNomePaciente() {
		return nomePaciente;
	}

	public void setNomePaciente(String nomePaciente) {
		this.nomePaciente = nomePaciente;
	}

	public String getNumeroPasta() {
		return numeroPasta;
	}

	public void setNumeroPasta(String numeroPasta) {
		this.numeroPasta = numeroPasta;
	}
	
	
	
	/************** validações do formulário************/
	public List<String> erros;

	public Collection<String> getErros(){
		if(erros == null){
			return new ArrayList<String>();
		}
		return erros;
	}

	public void setErros(List<String> erros) {
		this.erros = erros;
	}
	
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		ActionMessages messages = new ActionMessages();
		
		if(!StringUtilsOdontosis.isVazia(getDataInicial()) && !StringUtilsOdontosis.isVazia(getDataFinal())){
			if(StringUtilsOdontosis.StringToDate(getDataInicial()).getTime() > StringUtilsOdontosis.StringToDate(getDataFinal()).getTime() ){
				messages.add("data", new ActionMessage("A data inicial deve ser menor ou igual a data final."));
			}
		}


		if (messages.size() > 0 && getMetodo() != null) {
			errors.add(messages);
			erros = new ArrayList<String>();
			for (Iterator iterator = messages.get(); iterator.hasNext();) {
				ActionMessage string = (ActionMessage) iterator.next();
				erros.add(string.getKey());
			}
			request.setAttribute("mensagens", erros);
			return errors;
		} else {
			request.setAttribute("mensagens", null);
			return super.validate(mapping, request);
		}

	}
	
	
	
}
